--Contexto

data Parent = PMetaFunction        --Es el cuerpo inicial de una funcion
	| PMetaValue               --Es una valor final
	| PMetaLambda              --Es una exprecion envuelta en una lambda
	| PMetaApp                 --Es una aplicacion izquierda
	| PMetaApp'                --Es una aplicacion derecha
	| PMetaPrograms            --No tiene ancestro 
	| PMetaPatternMatching     --Esta dentro de una especialicacion
	| PMetaEager               --Es una exprecion eager, que va como typedef y no como herencia.
		deriving (Eq,Show)

-- El contexto consta de la lista de los padres de donde provino la 
-- expresion, la lista de variables bindeadas, nombres que son constructores
type Context = ([Parent],[String], [String]) 
